package web.controller;

import hibernate.pojo.Voting;
import hibernate.util.HibernateUtil;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.faces.component.UIData;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Criteria;
import org.hibernate.classic.Session;
import org.hibernate.criterion.Restrictions;

public class ListAvailableVotingsController {

	
	private static final Log logger = LogFactory.getLog(ListAvailableVotingsController.class);
	
	private List<Voting> availableVotings;
	private Voting availableVoting;
	private UIData availableVotingsTable;
	private String availableVotingID;
	private String availableVotingName;
	private String startDate;
	private String endDate;
	private String availableVotingDetailInfo;
	
	
	public ListAvailableVotingsController() {
		// TODO Auto-generated constructor stub
	}

	public List<Voting> getAvailableVotings() {
		try {
			availableVotings = new ArrayList<Voting>();
			Session session = HibernateUtil.getSessionFactory().openSession();
			Criteria criteria = session.createCriteria(Voting.class);
			criteria.add(Restrictions.gt("endDate",(new Date())));
			availableVotings = criteria.list();
		} catch (Exception exception) {
			logger.error("Kullanici listesi database den okunurken hata olustu!",exception);
		}

		if(availableVotings != null && availableVotings.size() > 0){
			return availableVotings;
		} else 
			return null;
	}

	public void setAvailableVotings(List<Voting> availableVotings) {
		this.availableVotings = availableVotings;
	}

	public Voting getAvailableVoting() {
		return availableVoting;
	}

	public void setAvailableVoting(Voting availableVoting) {
		this.availableVoting = availableVoting;
	}

	public UIData getAvailableVotingsTable() {
		return availableVotingsTable;
	}

	public void setAvailableVotingsTable(UIData availableVotingsTable) {
		this.availableVotingsTable = availableVotingsTable;
	}

	public String getAvailableVotingID() {
		return availableVotingID;
	}

	public void setAvailableVotingID(String availableVotingID) {
		this.availableVotingID = availableVotingID;
	}

	public String getAvailableVotingName() {
		return availableVotingName;
	}

	public void setAvailableVotingName(String availableVotingName) {
		this.availableVotingName = availableVotingName;
	}

	public String getStartDate() {
		return startDate;
	}

	public void setStartDate(String startDate) {
		this.startDate = startDate;
	}

	public String getEndDate() {
		return endDate;
	}

	public void setEndDate(String endDate) {
		this.endDate = endDate;
	}

	public String getAvailableVotingDetailInfo() {
		return availableVotingDetailInfo;
	}

	public void setAvailableVotingDetailInfo(String availableVotingDetailInfo) {
		this.availableVotingDetailInfo = availableVotingDetailInfo;
	}

}
